<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2">
<meta name="theme-color" content="#222">
<meta name="generator" content="Hexo 5.1.1">
  <link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon-next.png">
  <link rel="icon" type="image/png" sizes="32x32" href="/images/favicon-32x32-next.png">
  <link rel="icon" type="image/png" sizes="16x16" href="/images/favicon-16x16-next.png">
  <link rel="mask-icon" href="/images/logo.svg" color="#222">

<link rel="stylesheet" href="/css/main.css">



<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5.14.0/css/all.min.css">
  <link rel="stylesheet" href="//cdn.jsdelivr.net/npm/animate.css@3.1.1/animate.min.css">

<script class="hexo-configurations">
    var NexT = window.NexT || {};
    var CONFIG = {"hostname":"foryoungyu.gitee.io","root":"/","scheme":"Gemini","version":"8.0.0","exturl":false,"sidebar":{"position":"left","display":"post","padding":18,"offset":12},"copycode":false,"bookmark":{"enable":false,"color":"#222","save":"auto"},"fancybox":false,"mediumzoom":false,"lazyload":false,"pangu":false,"comments":{"style":"tabs","active":null,"storage":true,"lazyload":false,"nav":null},"motion":{"enable":true,"async":false,"transition":{"post_block":"fadeIn","post_header":"fadeInDown","post_body":"fadeInDown","coll_header":"fadeInLeft","sidebar":"fadeInUp"}},"prism":false,"i18n":{"placeholder":"搜索...","empty":"没有找到任何搜索结果：${query}","hits_time":"找到 ${hits} 个搜索结果（用时 ${time} 毫秒）","hits":"找到 ${hits} 个搜索结果"}};
  </script>

  <meta name="description" content="Linux Vi&#x2F;Vim所有的 Unix Like 系统都会内建 Vi 文书编辑器，其他的文书编辑器则不一定会存在。在 GNU 项目中，程序员在将 Vi 编辑器移植到开源世界的同时，决定对其作一些改进。由于改进后的 Vi 不再是以前 Unix 中的那个原始的 Vi 编辑器了，开发人员也就将它重命名为“Vi improved”，也就是 Vim。但是目前我们使用比较多的是 Vim 编辑器。Vim 具有">
<meta property="og:type" content="article">
<meta property="og:title" content="【Vim】Vim的基本使用">
<meta property="og:url" content="https://foryoungyu.gitee.io/2021/01/08/%E3%80%90Vim%E3%80%91Vim%E7%9A%84%E5%9F%BA%E6%9C%AC%E4%BD%BF%E7%94%A8/index.html">
<meta property="og:site_name" content="Salt.&#39;s Blog">
<meta property="og:description" content="Linux Vi&#x2F;Vim所有的 Unix Like 系统都会内建 Vi 文书编辑器，其他的文书编辑器则不一定会存在。在 GNU 项目中，程序员在将 Vi 编辑器移植到开源世界的同时，决定对其作一些改进。由于改进后的 Vi 不再是以前 Unix 中的那个原始的 Vi 编辑器了，开发人员也就将它重命名为“Vi improved”，也就是 Vim。但是目前我们使用比较多的是 Vim 编辑器。Vim 具有">
<meta property="og:locale" content="zh_CN">
<meta property="og:image" content="https://foryoungyu.gitee.io/images/vi-vim.gif">
<meta property="og:image" content="https://foryoungyu.gitee.io/images/vim%E5%B7%A5%E4%BD%9C%E6%A8%A1%E5%BC%8F.png">
<meta property="article:published_time" content="2021-01-08T14:05:00.000Z">
<meta property="article:modified_time" content="2021-02-13T14:18:58.065Z">
<meta property="article:author" content="Foryoung Yu">
<meta property="article:tag" content="Linux">
<meta property="article:tag" content="Vim">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="https://foryoungyu.gitee.io/images/vi-vim.gif">


<link rel="canonical" href="https://foryoungyu.gitee.io/2021/01/08/%E3%80%90Vim%E3%80%91Vim%E7%9A%84%E5%9F%BA%E6%9C%AC%E4%BD%BF%E7%94%A8/">


<script class="page-configurations">
  // https://hexo.io/docs/variables.html
  CONFIG.page = {
    sidebar: "",
    isHome : false,
    isPost : true,
    lang   : 'zh-CN'
  };
</script>

  <title>【Vim】Vim的基本使用 | Salt.'s Blog</title>
  






  <noscript>
  <style>
  body { margin-top: 2rem; }

  .use-motion .menu-item,
  .use-motion .sidebar,
  .use-motion .post-block,
  .use-motion .pagination,
  .use-motion .comments,
  .use-motion .post-header,
  .use-motion .post-body,
  .use-motion .collection-header {
    visibility: visible;
  }

  .use-motion .header,
  .use-motion .site-brand-container .toggle,
  .use-motion .footer { opacity: initial; }

  .use-motion .site-title,
  .use-motion .site-subtitle,
  .use-motion .custom-logo-image {
    opacity: initial;
    top: initial;
  }

  .use-motion .logo-line {
    transform: scaleX(1);
  }

  .search-pop-overlay, .sidebar-nav { display: none; }
  .sidebar-panel { display: block; }
  </style>
</noscript>

</head>

<body itemscope itemtype="http://schema.org/WebPage" class="use-motion">
  <div class="headband"></div>

  <main class="main">
    <header class="header" itemscope itemtype="http://schema.org/WPHeader">
      <div class="header-inner"><div class="site-brand-container">
  <div class="site-nav-toggle">
    <div class="toggle" aria-label="切换导航栏">
        <span class="toggle-line"></span>
        <span class="toggle-line"></span>
        <span class="toggle-line"></span>
    </div>
  </div>

  <div class="site-meta">

    <a href="/" class="brand" rel="start">
      <i class="logo-line"></i>
      <h1 class="site-title">Salt.'s Blog</h1>
      <i class="logo-line"></i>
    </a>
      <p class="site-subtitle" itemprop="description">生于忧患，死于安乐</p>
  </div>

  <div class="site-nav-right">
    <div class="toggle popup-trigger">
    </div>
  </div>
</div>



<nav class="site-nav">
  <ul class="main-menu menu">
        <li class="menu-item menu-item-home">

    <a href="/" rel="section"><i class="fa fa-home fa-fw"></i>首页</a>

  </li>
        <li class="menu-item menu-item-archives">

    <a href="/archives/" rel="section"><i class="fa fa-archive fa-fw"></i>归档</a>

  </li>
        <li class="menu-item menu-item-tags">

    <a href="/tags/" rel="section"><i class="fa fa-tags fa-fw"></i>标签</a>

  </li>
        <li class="menu-item menu-item-categories">

    <a href="/categories/" rel="section"><i class="fa fa-th fa-fw"></i>分类</a>

  </li>
        <li class="menu-item menu-item-系列">

    <a href="/series/" rel="section"><i class="fa fa-book fa-fw"></i>系列</a>

  </li>
        <li class="menu-item menu-item-about">

    <a href="/about/" rel="section"><i class="fa fa-user fa-fw"></i>关于</a>

  </li>
        <li class="menu-item menu-item-schedule">

    <a href="/schedule/" rel="section"><i class="fa fa-calendar fa-fw"></i>日程表</a>

  </li>
  </ul>
</nav>




</div>
        
  
  <div class="toggle sidebar-toggle">
    <span class="toggle-line"></span>
    <span class="toggle-line"></span>
    <span class="toggle-line"></span>
  </div>

  <aside class="sidebar">

    <div class="sidebar-inner sidebar-nav-active sidebar-toc-active">
      <ul class="sidebar-nav">
        <li class="sidebar-nav-toc">
          文章目录
        </li>
        <li class="sidebar-nav-overview">
          站点概览
        </li>
      </ul>

      <!--noindex-->
      <section class="post-toc-wrap sidebar-panel">
          <div class="post-toc animated"><ol class="nav"><li class="nav-item nav-level-2"><a class="nav-link" href="#Linux-Vi-Vim"><span class="nav-number">1.</span> <span class="nav-text">Linux Vi&#x2F;Vim</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#%E4%BB%80%E4%B9%88%E6%98%AFVim"><span class="nav-number">2.</span> <span class="nav-text">什么是Vim</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#Vim%E7%9A%84%E4%BD%BF%E7%94%A8"><span class="nav-number">3.</span> <span class="nav-text">Vim的使用</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#Vim%E7%9A%84%E6%8C%89%E9%94%AE%E8%AF%B4%E6%98%8E"><span class="nav-number">4.</span> <span class="nav-text">Vim的按键说明</span></a><ol class="nav-child"><li class="nav-item nav-level-3"><a class="nav-link" href="#%E7%AC%AC%E4%B8%80%E9%83%A8%E5%88%86-%E4%B8%80%E8%88%AC%E6%A8%A1%E5%BC%8F%E5%8F%AF%E7%94%A8%E7%9A%84%E5%85%89%E6%A0%87%E7%A7%BB%E5%8A%A8%E3%80%81%E9%80%89%E6%8B%A9%E5%A4%8D%E5%88%B6%E7%B2%98%E8%B4%B4%E3%80%81%E6%90%9C%E7%B4%A2%E6%9B%BF%E6%8D%A2%E7%AD%89"><span class="nav-number">4.1.</span> <span class="nav-text">第一部分 一般模式可用的光标移动、选择复制粘贴、搜索替换等</span></a><ol class="nav-child"><li class="nav-item nav-level-4"><a class="nav-link" href="#%E7%A7%BB%E5%8A%A8%E5%85%89%E6%A0%87%E7%9A%84%E6%96%B9%E6%B3%95"><span class="nav-number">4.1.1.</span> <span class="nav-text">移动光标的方法</span></a></li><li class="nav-item nav-level-4"><a class="nav-link" href="#%E6%90%9C%E7%B4%A2%E6%9B%BF%E6%8D%A2"><span class="nav-number">4.1.2.</span> <span class="nav-text">搜索替换</span></a></li><li class="nav-item nav-level-4"><a class="nav-link" href="#%E9%80%89%E6%8B%A9%E3%80%81%E5%88%A0%E9%99%A4%E3%80%81%E5%A4%8D%E5%88%B6%E4%B8%8E%E7%B2%98%E8%B4%B4"><span class="nav-number">4.1.3.</span> <span class="nav-text">选择、删除、复制与粘贴</span></a></li></ol></li><li class="nav-item nav-level-3"><a class="nav-link" href="#%E7%AC%AC%E4%BA%8C%E9%83%A8%E5%88%86%EF%BC%9A%E4%B8%80%E8%88%AC%E6%A8%A1%E5%BC%8F%E5%88%87%E6%8D%A2%E5%88%B0%E7%BC%96%E8%BE%91%E6%A8%A1%E5%BC%8F%E7%9A%84%E5%8F%AF%E7%94%A8%E7%9A%84%E6%8C%89%E9%92%AE%E8%AF%B4%E6%98%8E"><span class="nav-number">4.2.</span> <span class="nav-text">第二部分：一般模式切换到编辑模式的可用的按钮说明</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#%E7%AC%AC%E4%B8%89%E9%83%A8%E5%88%86%EF%BC%9A%E4%B8%80%E8%88%AC%E6%A8%A1%E5%BC%8F%E5%88%87%E6%8D%A2%E5%88%B0%E6%8C%87%E4%BB%A4%E8%A1%8C%E6%A8%A1%E5%BC%8F%E7%9A%84%E5%8F%AF%E7%94%A8%E7%9A%84%E6%8C%89%E9%92%AE%E8%AF%B4%E6%98%8E"><span class="nav-number">4.3.</span> <span class="nav-text">第三部分：一般模式切换到指令行模式的可用的按钮说明</span></a><ol class="nav-child"><li class="nav-item nav-level-4"><a class="nav-link" href="#%E6%8C%87%E4%BB%A4%E8%A1%8C%E7%9A%84%E5%82%A8%E5%AD%98%E3%80%81%E7%A6%BB%E5%BC%80%E7%AD%89%E6%8C%87%E4%BB%A4"><span class="nav-number">4.3.1.</span> <span class="nav-text">指令行的储存、离开等指令</span></a></li></ol></li></ol></li><li class="nav-item nav-level-2"><a class="nav-link" href="#%E5%85%B6%E4%BB%96%E6%8A%80%E5%B7%A7"><span class="nav-number">5.</span> <span class="nav-text">其他技巧</span></a><ol class="nav-child"><li class="nav-item nav-level-3"><a class="nav-link" href="#%E6%89%B9%E9%87%8F%E6%B3%A8%E9%87%8A"><span class="nav-number">5.1.</span> <span class="nav-text">批量注释</span></a></li></ol></li></ol></div>
      </section>
      <!--/noindex-->

      <section class="site-overview-wrap sidebar-panel">
        <div class="site-author animated" itemprop="author" itemscope itemtype="http://schema.org/Person">
    <img class="site-author-image" itemprop="image" alt="Foryoung Yu"
      src="/images/dog.jpg">
  <p class="site-author-name" itemprop="name">Foryoung Yu</p>
  <div class="site-description" itemprop="description">欣欣向荣</div>
</div>
<div class="site-state-wrap animated">
  <nav class="site-state">
      <div class="site-state-item site-state-posts">
          <a href="/archives/">
        
          <span class="site-state-item-count">9</span>
          <span class="site-state-item-name">日志</span>
        </a>
      </div>
      <div class="site-state-item site-state-categories">
            <a href="/categories/">
          
        <span class="site-state-item-count">6</span>
        <span class="site-state-item-name">分类</span></a>
      </div>
      <div class="site-state-item site-state-tags">
            <a href="/tags/">
          
        <span class="site-state-item-count">11</span>
        <span class="site-state-item-name">标签</span></a>
      </div>
  </nav>
</div>
  <div class="links-of-author animated">
      <span class="links-of-author-item">
        <a href="https://github.com/ForyoungYu" title="GitHub → https:&#x2F;&#x2F;github.com&#x2F;ForyoungYu" rel="noopener" target="_blank"><i class="fab fa-github fa-fw"></i>GitHub</a>
      </span>
      <span class="links-of-author-item">
        <a href="mailto:foryoung@outlook.com" title="E-Mail → mailto:foryoung@outlook.com" rel="noopener" target="_blank"><i class="fa fa-envelope fa-fw"></i>E-Mail</a>
      </span>
      <span class="links-of-author-item">
        <a href="https://weibo.com/u/5935274514" title="Weibo → https:&#x2F;&#x2F;weibo.com&#x2F;u&#x2F;5935274514" rel="noopener" target="_blank"><i class="fab fa-weibo fa-fw"></i>Weibo</a>
      </span>
  </div>



      </section>
    </div>
  </aside>
  <div class="sidebar-dimmer"></div>


    </header>

    
  <div class="back-to-top">
    <i class="fa fa-arrow-up"></i>
    <span>0%</span>
  </div>

<noscript>
  <div class="noscript-warning">Theme NexT works best with JavaScript enabled</div>
</noscript>


    <div class="main-inner post posts-expand">
      

      

    
  
  
  <article itemscope itemtype="http://schema.org/Article" class="post-block" lang="zh-CN">
    <link itemprop="mainEntityOfPage" href="https://foryoungyu.gitee.io/2021/01/08/%E3%80%90Vim%E3%80%91Vim%E7%9A%84%E5%9F%BA%E6%9C%AC%E4%BD%BF%E7%94%A8/">

    <span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
      <meta itemprop="image" content="/images/dog.jpg">
      <meta itemprop="name" content="Foryoung Yu">
      <meta itemprop="description" content="欣欣向荣">
    </span>

    <span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
      <meta itemprop="name" content="Salt.'s Blog">
    </span>

    
    
      <header class="post-header">
        <h1 class="post-title" itemprop="name headline">
          【Vim】Vim的基本使用
        </h1>

        <div class="post-meta-container">
          <div class="post-meta">
    <span class="post-meta-item">
      <span class="post-meta-item-icon">
        <i class="far fa-calendar"></i>
      </span>
      <span class="post-meta-item-text">发表于</span>

      <time title="创建时间：2021-01-08 22:05:00" itemprop="dateCreated datePublished" datetime="2021-01-08T22:05:00+08:00">2021-01-08</time>
    </span>
      <span class="post-meta-item">
        <span class="post-meta-item-icon">
          <i class="far fa-calendar-check"></i>
        </span>
        <span class="post-meta-item-text">更新于</span>
        <time title="修改时间：2021-02-13 22:18:58" itemprop="dateModified" datetime="2021-02-13T22:18:58+08:00">2021-02-13</time>
      </span>
    <span class="post-meta-item">
      <span class="post-meta-item-icon">
        <i class="far fa-folder"></i>
      </span>
      <span class="post-meta-item-text">分类于</span>
        <span itemprop="about" itemscope itemtype="http://schema.org/Thing">
          <a href="/categories/Vim/" itemprop="url" rel="index"><span itemprop="name">Vim</span></a>
        </span>
    </span>

  
</div>

        </div>
      </header>

    
    
    
    <div class="post-body" itemprop="articleBody">
        <h2 id="Linux-Vi-Vim"><a href="#Linux-Vi-Vim" class="headerlink" title="Linux Vi/Vim"></a>Linux Vi/Vim</h2><p>所有的 Unix Like 系统都会内建 Vi 文书编辑器，其他的文书编辑器则不一定会存在。<br>在 GNU 项目中，程序员在将 Vi 编辑器移植到开源世界的同时，决定对其作一些改进。<br>由于改进后的 Vi 不再是以前 Unix 中的那个原始的 Vi 编辑器了，开发人员也就将它重命名为“Vi improved”，也就是 Vim。<br>但是目前我们使用比较多的是 Vim 编辑器。Vim 具有程序编辑的能力，可以主动的以字体颜色辨别语法的正确性，方便程序设计。</p>
<h2 id="什么是Vim"><a href="#什么是Vim" class="headerlink" title="什么是Vim"></a>什么是Vim</h2><p>Vim是从 Vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富，在程序员中被广泛使用，和Emacs并列成为类Unix系统用户最喜欢的文本编辑器。</p>
<p>简单的来说， Vi 是老式的字处理器，功能已经很齐全了，但是还是有可以进步的地方。 Vim 则可以说是程序开发者的一项很好用的工具。</p>
<p><strong>Vim键位图:</strong><br><img src="/images/vi-vim.gif" alt="Vim键位图"></p>
<p>看起来是不是很复杂？不用担心，但其实常用的也就那么几个，而且命令之间也很具有逻辑性，非常好记。</p>
<h2 id="Vim的使用"><a href="#Vim的使用" class="headerlink" title="Vim的使用"></a>Vim的使用</h2><p>基本上 Vim 共分为三种模式，分别是<strong>命令模式（Command mode）</strong>，<strong>输入模式（Insert mode）</strong>和<strong>底线命令模式（Last line mode）</strong>。这三种模式的作用分别是：</p>
<p><strong>命令模式</strong><br>命令模式就是刚刚进入Vim的时候默认的模式。  </p>
<p>此时如果敲击键盘会被识别为命令。以下是常用的几个命令：</p>
<ul>
<li><strong>i</strong> 切换到输入模式，以输入字符。</li>
<li><strong>x</strong> 删除当前光标所在处的字符。</li>
<li><strong>:</strong> 切换到底线命令模式，以在最底一行输入命令。</li>
</ul>
<p><strong>输入模式</strong><br>在命令模式下按下i就进入了输入模式。<br>在输入模式中，可以使用以下按键：  </p>
<ul>
<li>字符按键以及Shift组合，输入字符</li>
<li>ENTER，回车键，换行</li>
<li>BACKSPACE，退格键，删除光标前一个字符</li>
<li>DEL，删除键，删除光标后一个字符</li>
<li>方向键，在文本中移动光标</li>
<li>HOME/END，移动光标到行首/行尾</li>
<li>Page Up/Page Down，上/下翻页</li>
<li>Insert，切换光标为输入/替换模式，光标将变成竖线/下划线</li>
<li>ESC，退出输入模式，切换到命令模式</li>
</ul>
<p><strong>底线命令模式</strong><br>在命令模式下按下:（英文冒号）就进入了底线命令模式。<br>底线命令模式可以输入单个或多个字符的命令，可用的命令非常多。<br>在底线命令模式中，基本的命令有（已经省略了冒号）：</p>
<ul>
<li><strong>q</strong> 退出程序</li>
<li><strong>w</strong> 保存文件</li>
</ul>
<p>按ESC键可随时退出底线命令模式。<br>简单的说，我们可以将这三个模式想成底下的图标来表示：<br><img src="/images/vim%E5%B7%A5%E4%BD%9C%E6%A8%A1%E5%BC%8F.png" alt="Vim的三种工作模式"></p>
<h2 id="Vim的按键说明"><a href="#Vim的按键说明" class="headerlink" title="Vim的按键说明"></a>Vim的按键说明</h2><p>以上只是基本操作，还有许多的命令可以学习，并且很具有逻辑性。</p>
<h3 id="第一部分-一般模式可用的光标移动、选择复制粘贴、搜索替换等"><a href="#第一部分-一般模式可用的光标移动、选择复制粘贴、搜索替换等" class="headerlink" title="第一部分 一般模式可用的光标移动、选择复制粘贴、搜索替换等"></a>第一部分 一般模式可用的光标移动、选择复制粘贴、搜索替换等</h3><h4 id="移动光标的方法"><a href="#移动光标的方法" class="headerlink" title="移动光标的方法"></a>移动光标的方法</h4><table>
<thead>
<tr>
<th align="center">按键</th>
<th align="center">作用</th>
</tr>
</thead>
<tbody><tr>
<td align="center">h 或 向左箭头键(←) 或 [backspace]</td>
<td align="center">光标向左移动一个字符</td>
</tr>
<tr>
<td align="center">j 或 向下箭头键(↓) 或 [enter]</td>
<td align="center">光标向下移动一个字符</td>
</tr>
<tr>
<td align="center">k 或 向上箭头键(↑)</td>
<td align="center">光标向上移动一个字符</td>
</tr>
<tr>
<td align="center">l 或 向右箭头键(→) 或 [space]</td>
<td align="center">光标向右移动一个字符</td>
</tr>
<tr>
<td align="center">[Ctrl] + [f]</td>
<td align="center">屏幕『向下』移动一页，相当于 [Page Down]按键 (常用)</td>
</tr>
<tr>
<td align="center">[Ctrl] + [b]</td>
<td align="center">屏幕『向上』移动一页，相当于 [Page Up] 按键 (常用)</td>
</tr>
<tr>
<td align="center">[Ctrl] + [d]</td>
<td align="center">屏幕『向下』移动半页</td>
</tr>
<tr>
<td align="center">[Ctrl] + [u]</td>
<td align="center">屏幕『向上』移动半页</td>
</tr>
<tr>
<td align="center">0 或功能键[Home]</td>
<td align="center">这是数字『 0 』：移动到这一行的最前面字符处 (常用)</td>
</tr>
<tr>
<td align="center">$ 或功能键[End]</td>
<td align="center">移动到这一行的最后面字符处(常用)</td>
</tr>
<tr>
<td align="center">H</td>
<td align="center">光标移动到这个屏幕的最上方那一行的第一个字符</td>
</tr>
<tr>
<td align="center">M</td>
<td align="center">光标移动到这个屏幕的中央那一行的第一个字符</td>
</tr>
<tr>
<td align="center">L</td>
<td align="center">光标移动到这个屏幕的最下方那一行的第一个字符</td>
</tr>
<tr>
<td align="center">G</td>
<td align="center">移动到这个档案的最后一行(常用)</td>
</tr>
<tr>
<td align="center">nG</td>
<td align="center">n 为数字。移动到这个档案的第 n 行。</td>
</tr>
<tr>
<td align="center">gg</td>
<td align="center">移动到这个档案的第一行，相当于 1G 啊！ (常用)</td>
</tr>
<tr>
<td align="center">n[Enter]</td>
<td align="center">n 为数字。光标向下移动 n 行(常用)</td>
</tr>
</tbody></table>
<blockquote>
<p>如果想要进行多次移动的话，例如向下移动 30 行，可以使用 “30j” 或 “30↓” 的组合按键， 亦即加上想要进行的次数(数字)后，按下动作即可！<br>其实很多的命令只要先加数字都可以实现类似的功能。比如删除命令<code>dd</code>，要想删除下两行，可以使用<code>2dd</code>。</p>
</blockquote>
<h4 id="搜索替换"><a href="#搜索替换" class="headerlink" title="搜索替换"></a>搜索替换</h4><table>
<thead>
<tr>
<th align="center">按键</th>
<th>作用</th>
</tr>
</thead>
<tbody><tr>
<td align="center">/word</td>
<td>向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串，就输入 /vbird 即可！ (常用)</td>
</tr>
<tr>
<td align="center">?word</td>
<td>向光标之上寻找一个字符串名称为 word 的字符串。</td>
</tr>
<tr>
<td align="center">n</td>
<td>重复前一个<strong>搜寻</strong>的动作。</td>
</tr>
<tr>
<td align="center">N</td>
<td>与 n 刚好相反，为『反向』进行前一个<strong>搜寻</strong>动作。 例如 /vbird 后，按下 N 则表示『向上』搜寻 vbird 。</td>
</tr>
</tbody></table>
<blockquote>
<p>使用 /word 配合 n 及 N 是非常有帮助的！可以让你重复的找到一些你搜寻的关键词！</p>
</blockquote>
<h4 id="选择、删除、复制与粘贴"><a href="#选择、删除、复制与粘贴" class="headerlink" title="选择、删除、复制与粘贴"></a>选择、删除、复制与粘贴</h4><table>
<thead>
<tr>
<th align="center">按键</th>
<th>作用</th>
</tr>
</thead>
<tbody><tr>
<td align="center">v</td>
<td>进入按字符选择模式,通过h、i、j、k键移动光标选择要进行复制的字符串</td>
</tr>
<tr>
<td align="center">V</td>
<td>进入按行选择模式，通过h、i、j、k键移动光标选择要进行复制的行号</td>
</tr>
<tr>
<td align="center">[Ctrl]+v</td>
<td>进入到按块选择模式，通过h、i、j、k移动鼠标选择要进行复制的区域块</td>
</tr>
<tr>
<td align="center">x</td>
<td>向后删除一个字符 (相当于 [del] 按键)。</td>
</tr>
<tr>
<td align="center">X</td>
<td>向前删除一个字符(相当于 [backspace] 亦即是退格键) (常用)</td>
</tr>
<tr>
<td align="center">nx</td>
<td>n 为数字，连续向后删除 n 个字符。举例来说，我要连续删除 10 个字符， 『10x』。</td>
</tr>
<tr>
<td align="center">dd</td>
<td>删除游标所在的那一整行(常用)</td>
</tr>
<tr>
<td align="center">ndd</td>
<td>n 为数字。删除光标所在的向下 n 行，例如 20dd 则是删除 20 行 (常用)</td>
</tr>
<tr>
<td align="center">d1G 或 dgg</td>
<td>删除光标所在到第一行的所有数据</td>
</tr>
<tr>
<td align="center">dG</td>
<td>删除光标所在到最后一行的所有数据</td>
</tr>
<tr>
<td align="center">d$</td>
<td>删除游标所在处，到该行的最后一个字符</td>
</tr>
<tr>
<td align="center">d0</td>
<td>那个是数字的 0 ，删除游标所在处，到该行的最前面一个字符</td>
</tr>
<tr>
<td align="center">yy</td>
<td>复制游标所在的那一行(常用)</td>
</tr>
<tr>
<td align="center">nyy</td>
<td>n 为数字。复制光标所在的向下 n 行，例如 20yy 则是复制 20 行(常用)</td>
</tr>
<tr>
<td align="center">y1G 或 ygg</td>
<td>复制游标所在行到第一行的所有数据</td>
</tr>
<tr>
<td align="center">yG</td>
<td>复制游标所在行到最后一行的所有数据</td>
</tr>
<tr>
<td align="center">y0</td>
<td>复制光标所在的那个字符到该行行首的所有数据</td>
</tr>
<tr>
<td align="center">y$</td>
<td>复制光标所在的那个字符到该行行尾的所有数据</td>
</tr>
<tr>
<td align="center">p</td>
<td>将已复制的数据在光标下一行贴上</td>
</tr>
<tr>
<td align="center">P</td>
<td>将已复制的数据在光标上一行贴上</td>
</tr>
<tr>
<td align="center">J</td>
<td>将光标所在行与下一行的数据结合成同一行</td>
</tr>
<tr>
<td align="center">c</td>
<td>重复删除多个数据，例如向下删除 10 行，[ 10cj ]</td>
</tr>
<tr>
<td align="center">u</td>
<td><strong>撤销</strong>上一步的操作。(常用)</td>
</tr>
<tr>
<td align="center">[Ctrl]+r</td>
<td><strong>重做（前进）</strong>上一个动作。(常用)</td>
</tr>
<tr>
<td align="center">.</td>
<td>这是就是小数点。表示重复前一个动作。如果你想要重复删除、重复贴上等等动作，按下小数点『.』就好了！ (常用)</td>
</tr>
</tbody></table>
<blockquote>
<p>u 与 [Ctrl]+r 是很常用的指令，表示前进和后退。另外「.」这个指令表示重复刚刚的动作，也非常常用。</p>
</blockquote>
<h3 id="第二部分：一般模式切换到编辑模式的可用的按钮说明"><a href="#第二部分：一般模式切换到编辑模式的可用的按钮说明" class="headerlink" title="第二部分：一般模式切换到编辑模式的可用的按钮说明"></a>第二部分：一般模式切换到编辑模式的可用的按钮说明</h3><table>
<thead>
<tr>
<th align="center">按键</th>
<th>作用</th>
</tr>
</thead>
<tbody><tr>
<td align="center">i, I</td>
<td>进入输入模式(Insert mode)：i 为『从目前光标所在处输入』， I 为『在目前所在行的第一个非空格符处开始输入』。 (常用)</td>
</tr>
<tr>
<td align="center">a, A</td>
<td>进入输入模式(Insert mode)：a 为『从目前光标所在的下一个字符处开始输入』， A 为『从光标所在行的最后一个字符处开始输入』。(常用)</td>
</tr>
<tr>
<td align="center">o, O</td>
<td>进入输入模式(Insert mode)：这是英文字母 o 的大小写。o 为在目前光标所在的下一行处输入新的一行； O 为在目前光标所在的上一行处输入新的一行！(常用)</td>
</tr>
<tr>
<td align="center">r, R</td>
<td>进入取代模式(Replace mode)：r 只会取代光标所在的那一个字符一次；R会一直取代光标所在的文字，直到按下 ESC 为止；(常用)</td>
</tr>
<tr>
<td align="center">[Esc]</td>
<td>退出编辑模式，回到一般模式中(常用)</td>
</tr>
</tbody></table>
<h3 id="第三部分：一般模式切换到指令行模式的可用的按钮说明"><a href="#第三部分：一般模式切换到指令行模式的可用的按钮说明" class="headerlink" title="第三部分：一般模式切换到指令行模式的可用的按钮说明"></a>第三部分：一般模式切换到指令行模式的可用的按钮说明</h3><h4 id="指令行的储存、离开等指令"><a href="#指令行的储存、离开等指令" class="headerlink" title="指令行的储存、离开等指令"></a>指令行的储存、离开等指令</h4><table>
<thead>
<tr>
<th align="center">按键</th>
<th>作用</th>
</tr>
</thead>
<tbody><tr>
<td align="center">:w</td>
<td>将编辑的数据写入硬盘档案中(常用)</td>
</tr>
<tr>
<td align="center">:w!</td>
<td>若文件属性为『只读』时，强制写入该档案。不过，到底能不能写入， 还是跟你对该档案的档案权限有关啊！</td>
</tr>
<tr>
<td align="center">:q</td>
<td>离开 vim (常用)</td>
</tr>
<tr>
<td align="center">:q!</td>
<td>若曾修改过档案，又不想储存，使用 ! 为强制离开不储存档案。</td>
</tr>
<tr>
<td align="center">:wq</td>
<td>储存后离开，若为 :wq! 则为强制储存后离开 (常用)</td>
</tr>
<tr>
<td align="center">ZZ</td>
<td>这是大写的 Z 喔！如果修改过，保存当前文件，然后退出！效果等同于(保存并退出)</td>
</tr>
<tr>
<td align="center">ZQ</td>
<td>不保存，强制退出。效果等同于 :q!。</td>
</tr>
<tr>
<td align="center">:w [filename]</td>
<td>将编辑的数据储存成另一个档案（类似另存新档）</td>
</tr>
<tr>
<td align="center">:r [filename]</td>
<td>在编辑的数据中，读入另一个档案的数据。亦即将 『filename』 这个档案内容加到游标所在行后面</td>
</tr>
<tr>
<td align="center">:n1,n2 w [filename]</td>
<td>将 n1 到 n2 的内容储存成 filename 这个档案。</td>
</tr>
<tr>
<td align="center">:! command</td>
<td>暂时离开 vi 到指令行模式下执行 command 的显示结果！例如『:! ls /home』即可在 vi 当中察看 /home 底下以 ls 输出的档案信息！</td>
</tr>
</tbody></table>
<blockquote>
<p>注意一下啊，那个惊叹号 (!) 在 vi 当中，常常具有『强制』的意思～</p>
</blockquote>
<h2 id="其他技巧"><a href="#其他技巧" class="headerlink" title="其他技巧"></a>其他技巧</h2><h3 id="批量注释"><a href="#批量注释" class="headerlink" title="批量注释"></a>批量注释</h3><p>[Ctrl] + v 进入块选择模式，然后移动光标选中你要注释的行，再按大写的 I 进入行首插入模式输入注释符号如 // 或 #，输入完毕之后，按两下 ESC，Vim 会自动将你选中的所有行首都加上注释，保存退出完成注释。</p>
<p>取消注释：</p>
<p>[Ctrl] + v 进入块选择模式，选中你要删除的行首的注释符号，注意 // 要选中两个，选好之后按 d 即可删除注释，ESC 保存退出。</p>
<blockquote>
<p>本文参考：<a target="_blank" rel="noopener" href="https://www.runoob.com/linux/linux-vim.html">菜鸟编程 Linux vi/vim</a></p>
</blockquote>

    </div>

    
    
    

    <footer class="post-footer">
          <div class="post-tags">
              <a href="/tags/Linux/" rel="tag"># Linux</a>
              <a href="/tags/Vim/" rel="tag"># Vim</a>
          </div>

        

          <div class="post-nav">
            <div class="post-nav-item">
                <a href="/2020/12/31/%E3%80%90Linux%E3%80%91SSH%E7%9A%84%E5%9F%BA%E6%9C%AC%E7%94%A8%E6%B3%95/" rel="prev" title="【Linux】SSH的基本使用">
                  <i class="fa fa-chevron-left"></i> 【Linux】SSH的基本使用
                </a>
            </div>
            <div class="post-nav-item">
                <a href="/2021/01/10/%E3%80%90%E6%95%B0%E6%8D%AE%E5%BA%93%E3%80%91MariaDB%E6%95%B0%E6%8D%AE%E5%BA%93%E7%9A%84%E5%AE%89%E8%A3%85%E5%92%8C%E5%9F%BA%E6%9C%AC%E4%BD%BF%E7%94%A8/" rel="next" title="【数据库】MariaDB数据库的安装和基本使用">
                  【数据库】MariaDB数据库的安装和基本使用 <i class="fa fa-chevron-right"></i>
                </a>
            </div>
          </div>
    </footer>
  </article>
  
  
  



      

<script>
  window.addEventListener('tabs:register', () => {
    let { activeClass } = CONFIG.comments;
    if (CONFIG.comments.storage) {
      activeClass = localStorage.getItem('comments_active') || activeClass;
    }
    if (activeClass) {
      const activeTab = document.querySelector(`a[href="#comment-${activeClass}"]`);
      if (activeTab) {
        activeTab.click();
      }
    }
  });
  if (CONFIG.comments.storage) {
    window.addEventListener('tabs:click', event => {
      if (!event.target.matches('.tabs-comment .tab-content .tab-pane')) return;
      const commentClass = event.target.classList[1];
      localStorage.setItem('comments_active', commentClass);
    });
  }
</script>

    </div>
  </main>

  <footer class="footer">
    <div class="footer-inner">
      

      

<div class="copyright">
  
  &copy; 2020 – 
  <span itemprop="copyrightYear">2021</span>
  <span class="with-love">
    <i class="fa fa-heart"></i>
  </span>
  <span class="author" itemprop="copyrightHolder">Foryoung Yu</span>
</div>
  <div class="powered-by">由 <a href="https://hexo.io/" class="theme-link" rel="noopener" target="_blank">Hexo</a> & <a href="https://theme-next.js.org/" class="theme-link" rel="noopener" target="_blank">NexT.Gemini</a> 强力驱动
  </div>

    </div>
  </footer>

  
  <script src="//cdn.jsdelivr.net/npm/animejs@3.2.0/lib/anime.min.js"></script>
<script src="/js/utils.js"></script><script src="/js/motion.js"></script><script src="/js/next-boot.js"></script>

  


















  








  

  

</body>
</html>
